const control = require("./control.js")

function test(){
    let element = control.waitForElement("手动",2000)
    if (null == element){
        control.toast("未发现元素，程序停止运行！")
        exit()
    }
    control.print_detail(element)
}

function open() {
    // 打开设置
    let settingsPackageName = app.getPackageName("设置");
    app.launchPackage(settingsPackageName)
    waitForPackage(settingsPackageName)

    // 滚动到顶部
    scrollUp();

    // 点击第一个 WLAN
    click("WLAN", 0)

    // 等待已连接出现
    let element = control.waitForElement("已连接", 2000)
    if (null == element) {
        control.toast("未发现WIFI已连接，程序停止运行！")
        exit()
    }
    sleep(500);
    // 长按已连接
    control.longClick(element)
    // 等待修改出现
    element = control.waitForElement("修改网络", 2000)
    if (null == element) {
        control.toast("未发现修改网络，程序停止运行！")
        exit()
    }
    // 点击修改网络
    control.click(element)
    // 等待显示高级选项
    element = control.waitForElement("显示高级选项", 2000)
    if (null == element) {
        control.toast("未发现显示高级选项，程序停止运行！")
        exit()
    }
    // 选中显示高级选项
    control.check(element, control.waitForElement, "显示高级选项", 2000)
    // 等待代理文字出现
    element = control.waitForElement("代理", 2000)
    if (null == element) {
        control.toast("未发现代理，程序停止运行！")
        exit()
    }
    element = control.waitForElement("无", 2000)
    if (element) {
        // 点击无
        control.click(element)
        // 等待手动文字出现
        element = control.waitForElement("手动", 2000)
        if (null == element) {
            control.toast("未发现手动，程序停止运行！")
            exit()
        }
        sleep(500);
        // 选中手动
        control.click(element)
    }
    // 等待保存文字出现
    element = control.waitForElement("保存", 2000)
    if (null == element) {
        control.toast("未发现保存，程序停止运行！")
        exit()
    }
    // 设置host
    element = id("com.android.settings:id/proxy_hostname").findOnce()
    if (null == element) {
        control.toast("未发现可设置服务器主机名，程序停止运行！")
        exit()
    }
    element.setText("192.168.0.101")
    // 设置端口
    element = id("com.android.settings:id/proxy_port").findOnce()
    if (null == element) {
        control.toast("未发现可设置服务器端口，程序停止运行！")
        exit()
    }
    element.setText("8080")
    // 等待保存文字出现
    element = control.waitForElement("保存", 2000)
    if (null == element) {
        control.toast("未发现保存，程序停止运行！")
        exit()
    }
    // 点击保存
    control.click(element)
    // 回到首页
    home();
    toast("代理已开启");
}

function close() {
    // 打开设置
    let settingsPackageName = app.getPackageName("设置");
    app.launchPackage(settingsPackageName)
    waitForPackage(settingsPackageName)

    // 滚动到顶部
    scrollUp();

    // 点击第一个 WLAN
    click("WLAN", 0)

    // 等待已连接出现
    let element = control.waitForElement("已连接", 2000)
    if (null == element) {
        control.toast("未发现WIFI已连接，程序停止运行！")
        exit()
    }
    sleep(500);
    // 长按已连接
    control.longClick(element)
    // 等待修改出现
    element = control.waitForElement("修改网络", 2000)
    if (null == element) {
        control.toast("未发现修改网络，程序停止运行！")
        exit()
    }
    // 点击修改网络
    control.click(element)
    // 等待显示高级选项
    element = control.waitForElement("显示高级选项", 2000)
    if (null == element) {
        control.toast("未发现显示高级选项，程序停止运行！")
        exit()
    }
    // 选中显示高级选项
    control.check(element, control.waitForElement, "显示高级选项", 2000)
    // 等待代理文字出现
    element = control.waitForElement("代理", 2000)
    if (null == element) {
        control.toast("未发现代理，程序停止运行！")
        exit()
    }
    // 判断是否开启了
    if (!text("无").exists()){
        // 已开启需要关闭，点击代理
        sleep(500)
        control.click(element)
        element = control.waitForElement("无", 2000)
        if (null == element) {
            control.toast("未发现无，程序停止运行！")
            exit()
        }
        sleep(500)
        // 点击无
        control.click(element)
        // 等待保存文字出现
        element = control.waitForElement("保存", 2000)
        if (null == element) {
            control.toast("未发现保存，程序停止运行！")
            exit()
        }
        // 点击保存
        control.click(element)
    }
    // 回到首页
    home();
    toast("代理已关闭");
}

//open()
close()

